//
//  NSDate+MJ.h
//  ItcastWeibo
//
//  Created by apple on 14-5-9.
//  Copyright (c) 2014年 itcast. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface NSDate (MJ)

/*
方法名:  是否为今天
@param  无
@return Bool   是否
*/

-(BOOL)isToday;

/*
 方法名:  是否为昨天
 @param  无
 @return Bool   是否
 */

- (BOOL)isYesterday;

/*
 方法名:   是否为今年
 @param  无
 @return Bool   是否
 */
- (BOOL)isThisYear;

/*
 方法名:  获取当前时间
 @param  无
 @return 字符串     格式:2014-12-05 12:12:12
 */

+ (NSString *)currentDateHourTimeString;

/*
 方法名:  获取当前时间
 @param  无
 @return 字符串     格式:2014/12/05 12:12:12
 */
+ (NSString *)currentDateHourTimeSecondString;


/*
 方法名:  获取当前时间
 @param  无
 @return 字符串     格式:2014-12-05 12:12
 */

+ (NSString *)currentDateToMuniteTimeString;


/*
 方法名:  获取当前时间
 @param  无
 @return 字符串     格式:yyyy年MM月dd日
 */

/**      yyyy年MM月dd日  HH时:mm分 */
+ (NSString *)currentDateToMuniteString;


+ (NSString *)currentDateToDayString;
/*
 方法名:  获取当前时间
 @param  无
 @return 字符串     格式:12/05 
 */

+ (NSString *)currentDateMonthMToDayString;


/*
 方法名:  获取当前时间
 @param  无
 @return 字符串     格式:2014/12/05 12:12:12M:000(到毫秒)
 */
+ (NSString *)currentDateHourTimeMillisecondString;

/*
 方法名:  获取当前时间
 @param  无
 @return 字符串     格式:2014-12-05
 */
+ (NSString *)currentDateTimeString;

+ (NSString *)currentDateYearToDayStringWithyyyy_MM_dd;

/*
 方法名:  获取当前时间
 @param  无
 @return 字符串     格式: 201412
 */

+ (NSString *)currentDateHourAndMuniteTimeString;

+ (NSString *)currentDateYearAndMonthString;
/*
 方法名:  获取当前时间
 @param  无
 @return 字符串     格式:2014-06
 */
+ (NSString *)currentDateYearAndMonth;
/*
 方法名:  获取当前时间
 @param  无
 @return 字符串     格式:20141212
 */

+ (NSString *)currentDateYearToDayString;
/*
 方法名:  获取当前时间
 @param  无
 @return 字符串     格式:20141212010101
 */

+ (NSString *)currentDateYearToSecondString;
/*
 方法名:  获取当前时间
 @param  无
 @return 字符串     格式:12:12:12
 */

+ (NSString *)currentDateString;

/*
 方法名:  获取当前时间
 @param  无
 @return 字符串     格式:2014.12.05
 */

- (NSDate *)dateWithYMD;

/*
 方法名:  获得与当前时间的差距
 @param  无
 @return 日历     日历
 */

- (NSDateComponents *)deltaWithNow;

/*
 方法名:  获得与指定时间的差距
 @param  无
 @return 日历
 */

- (NSDateComponents *)intervalToDate:(NSDate *)date;

/**
 比较两个日期
 @param dateStr1 开始日期
 @param dateStr2 结束日期
 @return 返回结果两个时间之间间隔的秒数
 
 */
+ (NSInteger)secondIntervalBetweenDateStr1:(NSString *)dateStr1 WithDateStr2:(NSString *)dateStr2;

/**
 比较日期(跟当前日期进行比较)
 
 @param dateStr1 日期
 @param dateStr2 日期
 @return 返回结果日历
 */

+ (NSDateComponents *)dateComponentsIntervalBetweenDateStr1:(NSString *)dateStr1 WithDateStr2:(NSString *)dateStr2;

/**
 方法名:一年的第几周
 
 @param dateString 日期

 @return 第几周
 */
+(NSString*)changeDateStringToWeekOfYearWithDateString:(NSString*)dateString;

/**
 方法名:一年的第几季度
 
 @param dateString 日期
 
 @return 第几季度
 */
+(NSString*)changeDateStringToQuarterOfYearWithDateString:(NSString*)dateString;

/**
 方法名:一年的上下半年
 
 @param dateString 日期
 
 @return 一年的上下半年
 */

+(NSString*)changeDateStringToParthOfYearWithDateString:(NSString*)dateString;

/**
 方法名:从现在开始几分钟前日期
 
 @param date   日期
 @param minute 秒
 @return 日期
 */

+(NSDate *)getPriousorLaterDateFromDate:(NSDate *)date withMinute:(int)minute;

/**
 方法名:如果日期是一星期内,便返回星期N,如果是一星期前就返回之间的日期
 
 @param date   日期

 @return 字串
 */
+(NSString *)returnDate:(NSDate *)date;

/**
 方法名:NSString 转 NSdate
 
 @param dateString   日期
 @param format       日期格式
 @return 日期
 */

+(NSDate *)dateFromString:(NSString *)dateString format:(NSString *)format;

/**
 方法名:NSDate 转 NSString
 
 @param date         日期
 @param format       日期格式
 @return 日期
 */

+(NSString *)stringFromDate:(NSDate *)date format:(NSString *)format;


/**  前几秒的时间    2014-12-05   */
+(NSString *)beforeSecondDateWithTime:(NSString*)time;

/**
 方法名:获取前一天
 
 @return 日期
 */
+(NSString *)lastDayDateString;

/**
 方法名:计算时分秒
 @param totalTime
 @return 传入秒得到时分秒算法
 */
+(NSString *)getMMSSFromSS:(NSString *)totalTime;

/**
 方法名:时间格式的转换
 @param stringTime
 @return 时间
 */

+(NSString *)stringTimeChangeStringTime:(NSString *)stringTime;


/**
 方法名:时间格式的转换
 @param  stringDate
 @return 时间
 */

+(NSString *)stringDateChangeStringDate:(NSString *)stringDate;

+(NSString *)stringDateChangeStringDate_yyyy_MM_dd:(NSString *)stringDate;


//yyyy年MM月dd日 HH时mm分 转 yyyy/MM/dd

+(NSString *)stringDateChangeStringDate_yyyy_MM_dd_HH_mm:(NSString *)stringDate;

/**
 方法名:   两个时间之间周数间隔
 @param   dateStr1
 @param   dateStr2
 @return  Bool 是否
 */

+ (BOOL)weekIntervalBetweenDateStr1:(NSString *)dateStr1 WithDateStr2:(NSString *)dateStr2;

/**
 方法名:   两个时间之间季度间隔
 @param   dateStr1
 @param   dateStr2
 @return  Bool 是否
 */

+ (BOOL)quarterIntervalBetweenDateStr1:(NSString *)dateStr1 WithDateStr2:(NSString *)dateStr2;

/**
 方法名:  日期转换为星期几
 @param  format   开始时间
 @return NSString 星期几
 */

+(NSString*)weekDayStr:(NSString*)format;

/**
 方法名:   比较两个时间差值
 @param   starTime 开始时间
 @param   endTime  结束时间
 @return  NSTimeInterval 时间差值
 */
+ (NSTimeInterval)pleaseInsertStarTime:(NSString *)starTime andInsertEndTime:(NSString *)endTime;


/**
 方法名:  比较两个时间差值毫秒
 @param starTime 开始时间毫秒
 @param endTime  结束时间毫秒
 @return  NSTimeInterval 时间差值（单位秒）
 */

+ (NSTimeInterval)pleaseInsertWithMilliSecondStarTime:(NSString *)starTime andInsertEndTime:(NSString *)endTime;

/*
 *  方法名    转换消息时间
 *  @param   NSString     booktime      消息时间
 *  @param   NSString                   转换后的消息时间 星期五或者上午 11:55 或者 昨天
 */

+(NSString*)changeBooktime:(NSString *)booktime;

/*
 *  方法名    转换消息时间
 *  @param   NSString     dateTime      消息时间
 *  @param   NSString                   转换后的消息时间 星期五或者上午 11:55 或者 昨天:10:202
 */

+(NSString*)changeWithDateTime:(NSString *)dateTime;

@end
